package com.sp.reflection.homework;

import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Homework02 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        //得到File的Class对象
        Class<?> aClass = Class.forName("java.io.File");

        //2. 在控制台打印File类的所有构造器
        Constructor<?>[] declaredConstructors = aClass.getDeclaredConstructors();
        for (Constructor<?> declaredConstructor : declaredConstructors) {
            System.out.println("File类的所有构造器: " + declaredConstructor);
        }
        //3. 通过newInstance的方法创建File对象, 并创建D:\\myFile.txt
        Constructor<?> constructor = aClass.getConstructor(String.class);//先得到构造器对象
        Object file = constructor.newInstance("D:\\myFile.txt");//创建File对象

        //4. 得到createNewFile的方法对象
        Method createNewFile = aClass.getMethod("createNewFile");
        createNewFile.invoke(file);//创建文件,调用createNewFile
        //file的运行类型就是File
        System.out.println(file.getClass());
        System.out.println("创建文件成功 ");


    }
}
